package com.finance.scheduler.responsexml;


import com.finance.framework.lang.BaseObject;
import com.finance.util.xml.JaxbDateAdapter;
import lombok.Data;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.math.BigDecimal;
import java.util.Date;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "order")
@Data
public class PullLogistics extends BaseObject {
	@XmlElement(name = "accept_scheduled")
	private Date acceptScheduled;//应揽收时间
	@XmlJavaTypeAdapter(JaxbDateAdapter.class)
	@XmlElement(name = "accept_time")
	private Date acceptTime;//第一次入库时间
	@XmlJavaTypeAdapter(JaxbDateAdapter.class)
	@XmlElement(name = "warehouse_out_time")
	private Date warehouseOutTime;//第一次出库时间
	@XmlJavaTypeAdapter(JaxbDateAdapter.class)
	@XmlElement(name = "site_in_time")
	private Date siteInTime;//最近一次到站时间
	@XmlJavaTypeAdapter(JaxbDateAdapter.class)
	@XmlElement(name = "site_out_time")
	private Date siteOutTime;//领货时间
	@XmlJavaTypeAdapter(JaxbDateAdapter.class)
	@XmlElement(name = "sign_time_promised")
	private Date signTimePromised;//承诺送达时间
	@XmlJavaTypeAdapter(JaxbDateAdapter.class)
	@XmlElement(name = "sign_time")
	private Date signTime;//运单签收时间

	@XmlElement(name = "waybill_num")
	private String waybillNum;//运单号
	@XmlElement(name = "business_code")
	private String businessCode;//订单号
	@XmlElement(name = "province_consignee")
	private String provinceConsignee;//省份编码
	@XmlElement(name = "city_consignee")
	private String cityConsignee;//地级市编码
	@XmlElement(name = "county_consignee")
	private String countyConsignee;//县级单位编码
	@XmlElement(name = "address_consignee")
	private String addressConsignee;//收件地址
	@XmlElement(name = "customer_code")
	private String supplierCode;//供货商编码
	@XmlElement(name = "customer_warehouse")
	private String supplierWarehouse;//供货商发货仓库
	@XmlElement(name = "name_consignee")
	private String nameConsignee;//收件人姓名
	@XmlElement(name = "cod")
	private String cod;//代收货款
	@XmlElement(name = "cod_back")
	private String codBack;//代退货款
	@XmlElement(name = "order_amount")
	private String orderAmount;//订单价格
	@XmlElement(name = "send_num")
	private String sendNum;//发货数量
	@XmlElement(name = "postman_no")
	private String postmanNo;//配送员工号
	@XmlElement(name = "orgcode_current")
	private String orgcodeCurrent;//货物当前机构编码
	@XmlElement(name = "orgcode_delivery")
	private String orgcodeDelivery;//货物实际配送站点编码
	@XmlElement(name = "orgcode_target")
	private String orgcodeTarget;//预分拣匹配的站点编码
	@XmlElement(name = "accept_orgcode")
	private String orgcodeAccept;//接单机构
	@XmlElement(name = "node_current")
	private String nodeCurrent;//运单流转节点(000系统导入 001人工导入)
	@XmlElement(name = "guarantee_fee")
	private String guaranteeFee;//保费 运单担保收益 一般为保价乘以费率
	@XmlElement(name = "business_remark")
	private String businessRemark;//供货商备注
	@XmlElement(name = "remark")
	private String remark;//运单备注
	@XmlElement(name = "mobile_consignee")
	private String mobileConsignee;//收件人手机号

	@XmlElement(name = "weight")
	private BigDecimal weight;//包裹重量(单位g)
	@XmlElement(name = "volume")
	private BigDecimal volume;//包裹体积(单位立方厘米)
	@XmlElement(name = "length")
	private BigDecimal length;//包裹长度(单位厘米)
	@XmlElement(name = "width")
	private BigDecimal width;//包裹宽度(单位厘米)
	@XmlElement(name = "height")
	private BigDecimal height;//包裹高度(单位厘米)

	@XmlElement(name = "accept")
	private Integer accept;//是否完成初次入库(是否已揽收 1是0非)
	@XmlElement(name = "direction")
	private Integer direction;//运单配送类型(枚举 0配送 1上门换 2上门退)
	@XmlElement(name = "temperature")
	private Integer temperature;//运输温度等级 (枚举 0常温 1生鲜冷链)
	@XmlElement(name = "express_schedule_type")
	private Integer expressScheduleType;//配送时效要求 (枚举 0未知 1当日达 2次晨达 3三日达 4工作日 5节假日 6夜间配 7上午达 8下午达)
	@XmlElement(name = "package_size")
	private String packageSize;//包裹大小规格 (枚举 0未知 1小件 2大件)
	@XmlElement(name = "expensive")
	private Integer expensive;//是否是贵品 (枚举1是0非)
	@XmlElement(name = "signer")
	private Integer signer;//本人签收(1是0非)
	@XmlElement(name = "warehouse_out")
	private Integer warehouseOut;//是否完成出库(1是0非)
	@XmlElement(name = "site_in")
	private Integer siteIn;//是否到配送站点(1是0非)
	@XmlElement(name = "site_out")
	private Integer siteOut;//是否已领货配送
	@XmlElement(name = "import_source")
	private Integer importSource;//运单来源(0系统接入 1手工导入)
	@XmlElement(name = "status")
	private Integer status;//配送状态( 0配送中 1成功 2失败)
}